const Koa = require('koa')
const Router = require('koa-router')

const app = new Koa()
const usereRouter = new Router({ prefix: '/users' })

const auth = async (ctx, next) => {
  if (ctx.url !== '/users') {
    ctx.throw(401)
  }
  await next()
}

usereRouter.get('/', auth, (ctx) => {
  ctx.body = '这是用户列表'
})

usereRouter.post('/', auth, (ctx) => {
  ctx.body = '这是创建用户'
})

usereRouter.get('/:id', auth, (ctx) => {
  ctx.body = `这是用户 ${ctx.params.id}`
})

// 任何中间都需要注册进去的
app.use(usereRouter.routes())
// koa-router 支持且没实现的报错 405 ； koa-router 内部本身不支持的报错 501。
app.use(usereRouter.allowedMethods())

app.listen(3000)
